<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Home extends MY_Controller{

	public function index(){
		if($this->isPessoaLoggedIn()){
			$usuario = $this->getLoggedUser();

			$this->load->model('negocio/paravoce_model', 'paravoce_model');

			$ultimosPedidos = $this->paravoce_model->getUltimos5Pedidos($usuario['cod']);
			$maisVendidos = $this->paravoce_model->getMaisVendidos();
			
			$this->addScript(base_url('assets/js/jquery.validate.min.js'));
			$this->addScript(base_url('assets/js/shared/validation.js'));
			$this->addScript(base_url('assets/js/paravoce/pedidodetalhes.js'));

			$this->setViewData('main_content', 'paravoce/inicio');
			$this->setViewData('mais_vendidos', $maisVendidos);
			$this->setViewData('ultimos_pedidos', $ultimosPedidos);
			$this->load->view('_shared/template', $this->viewData);

		}else{
			redirect('paravoce/home/acessar');
		}
	}

	public function locaisEntrega(){
		if ($this->isPessoaLoggedIn()){
			$usuario = $this->getLoggedUser();
			if ($usuario['cod']) 
			{
	      		echo ('<h4>aqui deveria retornar uma lista de locais de entrega desta pessoa $usuario["cod"] :)</h4>');
				
				$this->load->model('negocio/paravoce_model', 'paravoce_model');

				$this->setViewData('main_content', 'paravoce/locaisentrega');
				$this->setViewData('estados', $this->Estado_model->getAll());
				$this->setViewData('cidades', $this->Cidade_model->getAll());
				$this->setViewData('locais_entrega', $this->paravoce_model->getLocaisEntrega($usuario['cod']));				
				$this->load->view('_shared/template', $this->viewData);
			}			
		}
	}

	public function acessar(){
		$retornar = "";
		
		if($this->uri->segment(4) === "retornar"){
			$retornar = $this->uri->uri_to_assoc(5);
			$retornar = $this->uri->assoc_to_uri($retornar);
		}

		if($this->isPessoaLoggedIn()){
			if(!empty($retornar)){
				redirect(site_url($retornar));	
			}else{
				redirect('paravoce');	
			}
		}else{
			$formdata = array(
				'email_cliente' => $this->input->post('email_cliente'),
				'senha_cliente' => $this->input->post('senha_cliente')
			);

			$this->addScript(base_url('assets/js/jquery.validate.min.js'));
			$this->addScript(base_url('assets/js/shared/validation.js'));
			$this->addScript(base_url('assets/js/paravoce/acessar.js'));

			$this->setViewData('main_content', 'paravoce/acessar');
			$this->setViewData('formdata', $formdata);
			$this->load->view('_shared/template', $this->viewData);
		}
	}

	public function login(){
		$retornar = "";

		if($this->uri->segment(4) === "retornar"){
			$retornar = $this->uri->uri_to_assoc(5);
			$retornar = $this->uri->assoc_to_uri($retornar);
		}

		$this->load->model('negocio/paravoce_model', 'paravoce_model');

		$datetime      = $this->input->post('datetime');		
		$email_cliente = $this->input->post('email_cliente');
		$senha_cliente = $this->input->post('senha_cliente');
		$formMessage = array();

		if($this->isPessoaLoggedIn()){
			redirect('paravoce');
		}else{
			if($datetime)
			{
				$validacao = $this->paravoce_model->login($email_cliente, $senha_cliente);

				if(!$validacao[0]){
					$formMessage = array(1, $validacao[1]);
				}else{ // usuário logado tipo 2 == pessoa
					$this->setLoggedUser($email_cliente, $validacao[2], 2, $validacao[1]);
					
					if(!empty($retornar)){
						redirect(site_url($retornar));	
					}else{
						redirect('paravoce');	
					}
				}
			}

			$this->setViewData('formMessage', $formMessage);
			$this->acessar();
		}
	}

	public function esqueciMinhaSenha(){
		echo '<h1>Oi? Você tem que fazer "paravoce/esqueci_minha_senha"</h1>';
		//$this->setViewData('main_content', 'paravoce/esqueci_minha_senha');
		$this->load->view('_shared/template', $this->viewData);
	}

	public function sair(){
		$this->logoff();
		redirect('paravoce');
	}

	public function cadastro(){
		// tipo(1=erro,2=alerta,3=sucesso), mensagem
		$formMessage = array();

		// Carregamento dos models utilizados no cadastro
		$this->load->model('negocio/estado_model', 'estado_model');
		$this->load->model('negocio/cidade_model', 'cidade_model');
		$this->load->model('negocio/paravoce_model', 'paravoce_model');

		// Recebimento das variáveis do formulário
		$datetime           = $this->input->post('datetime');
		$cpf_cliente        = $this->input->post('cpf_cliente');
		$nome               = $this->input->post('nome');
		$telefone           = $this->input->post('telefone');
		$celular            = $this->input->post('celular');
		$endereco           = $this->input->post('endereco');
		$numero             = $this->input->post('numero');
		$bairro             = $this->input->post('bairro');
		$cep                = $this->input->post('cep');
		$estado             = $this->input->post('estado');
		$cidade             = $this->input->post('cidade');
		$email_cliente      = $this->input->post('email_cliente');
		$confirmar_email    = $this->input->post('confirmar_email');
		$senha_cliente      = $this->input->post('senha_cliente');
		$confirmar_senha    = $this->input->post('confirmar_senha');
		$data_nascimento    = $this->input->post('data_nascimento');
		$data_cadastro      = $datetime;

		$formdata = array(
			'cpf_cliente'	  => $this->input->post('cpf_cliente'),
			'email_cliente'	  => $this->input->post('email_cliente'),
			'senha_cliente'   => $this->input->post('senha_cliente'),
			'nome' 			  => $this->input->post('nome'),
			'telefone' 		  => $this->input->post('telefone'),
			'celular'  		  => $this->input->post('celular'),
			'data_nascimento' => $this->input->post('data_nascimento'),
			'endereco'        => $this->input->post('endereco'),
			'numero'          => $this->input->post('numero'),
			'bairro'          => $this->input->post('bairro'),
			'cep'             => $this->input->post('cep'),
			'cidade'          => $this->input->post('cidade'),
			'data_cadastro'   => $datetime
		);

		if($email_cliente || $email_cliente != $confirmar_email){
			//validação email
		}

		if($senha_cliente || $senha_cliente != $confirmar_senha){
			//validação senha
		}

		//Cadastro da cliente
		if($datetime && $cpf_cliente && $email_cliente && $senha_cliente){			
			// Criação do objeto cliente
			$cliente = new cliente();
			$cliente->setCPF($cpf_cliente);
			$cliente->setEmail($email_cliente);
			$cliente->setSenha($senha_cliente);
			$cliente->setNome($nome);
			$cliente->setTelefone($telefone);
			$cliente->setCelular($celular);
			list($dia, $mes, $ano) = explode('/', $data_nascimento);
			$data_nascimento = $ano.'-'.$mes.'-'.$dia;			
			$cliente->setDataNascimento($data_nascimento);
			$cliente->setEndereco($endereco);
			$cliente->setNumero($numero);
			$cliente->setBairro($bairro);
			$cliente->setCEP($cep);
			$cliente->setCidade($cidade);
			$cliente->setDataCadastro($datetime);

			$validacao = $cliente->gravar();

			if(!$validacao[0]){
				$formMessage = array(1, $validacao[1]);
			}else{
				$formMessage = array(3, 'Cadastrado efetuado com sucesso. Por favor, acesse seu e-mail para confirmar o cadastro.');

				foreach ($formdata as $chave){
					$formdata[$chave] = '';
				}
			}
		}
		
		//
		// Adiciona Scripts não padrão no carregamento da página
		//		
		// plugin validação + extras para validar CPF/CNPJ e mensagens padrão
		$this->addScript(base_url('assets/js/jquery.validate.min.js'));
		$this->addScript(base_url('assets/js/shared/validation.js'));
		// plugin p/ colocar máscara nos campos
		$this->addScript(base_url('assets/js/jquery.maskedinput.min.js'));
		// script p/ a página
		$this->addScript(base_url('assets/js/paravoce/cadastro.js'));

		// Dados que serão enviados para a view
		$this->setViewData('main_content', 'paravoce/cadastro');
		$this->setViewData('estados', $this->estado_model->getAll());
		$this->setViewData('cidades', $this->cidade_model->getAll());
		$this->setViewData('formMessage', $formMessage);
		$this->setViewData('formdata', $formdata);

		// Carrega a view
		$this->load->view('_shared/template', $this->viewData);
	}

	public function alterarCadastro(){
		$usuario = getLoggedUser();

		if ($usuario['cod']){
			// plugin validação + extras para validar CPF/CNPJ e mensagens padrão
			$this->addScript(base_url('assets/js/jquery.validate.min.js'));
			$this->addScript(base_url('assets/js/shared/validation.js'));
			// plugin p/ colocar máscara nos campos
			$this->addScript(base_url('assets/js/jquery.maskedinput.min.js'));
			// script p/ a página
			$this->addScript(base_url('assets/js/paravoce/alterarcadastro.js'));
			
			// Dados que serão enviados para a view
			$this->setViewData('main_content', 'paravoce/alterarcadastro');
			$this->setViewData('estados', $this->estado_model->getAll());
			$this->setViewData('cidades', $this->cidade_model->getAll());
			$this->setViewData('formMessage', $formMessage);
			$this->setViewData('formdata', $formdata);

			// Carrega a view
			$this->load->view('_shared/template', $this->viewData);
		}else{
			echo 'redirect("paravoce/acessar")';
			exit();
		}
	}

	public function meucadastro(){
		$usuario = getLoggedUser();
		
		if ($usuario['cod']){
			// tipo(1=erro,2=alerta,3=sucesso), mensagem
			$formMessage = array();

			// Carregamento dos models utilizados no cadastro
			$this->load->model('negocio/estado_model', 'estado_model');
			$this->load->model('negocio/cidade_model', 'cidade_model');
			$this->load->model('negocio/paravoce_model', 'paravoce_model');

			// Recebimento das variáveis do formulário
			$datetime           = $this->input->post('datetime');
			$cpf_cliente        = $this->input->post('cpf_cliente');
			$nome               = $this->input->post('nome');
			$telefone           = $this->input->post('telefone');
			$celular            = $this->input->post('celular');
			$endereco           = $this->input->post('endereco');
			$numero             = $this->input->post('numero');
			$bairro             = $this->input->post('bairro');
			$cep                = $this->input->post('cep');
			$estado             = $this->input->post('estado');
			$cidade             = $this->input->post('cidade');
			$email_cliente      = $this->input->post('email_cliente');
			$confirmar_email    = $this->input->post('confirmar_email');
			$senha_cliente      = $this->input->post('senha_cliente');
			$confirmar_senha    = $this->input->post('confirmar_senha');
			$data_nascimento    = $this->input->post('data_nascimento');
			$data_cadastro      = $datetime;

			$formdata = array(
				'cpf_cliente'	  => $this->input->post('cpf_cliente'),
				'email_cliente'	  => $this->input->post('email_cliente'),
				'senha_cliente'   => $this->input->post('senha_cliente'),
				'nome' 			  => $this->input->post('nome'),
				'telefone' 		  => $this->input->post('telefone'),
				'celular'  		  => $this->input->post('celular'),
				'data_nascimento' => $this->input->post('data_nascimento'),
				'endereco'        => $this->input->post('endereco'),
				'numero'          => $this->input->post('numero'),
				'bairro'          => $this->input->post('bairro'),
				'cep'             => $this->input->post('cep'),
				'cidade'          => $this->input->post('cidade'),
				'data_cadastro'   => $datetime
				);

			if($email_cliente || $email_cliente != $confirmar_email){
				//validação email
			}

			if($senha_cliente || $senha_cliente != $confirmar_senha){
				//validação senha
			}

			//Cadastro da cliente
			if($datetime && $cpf_cliente && $email_cliente && $senha_cliente){
				// Criação do objeto cliente
				$cliente = new cliente();
				$cliente->setCPF($cpf_cliente);
				$cliente->setEmail($email_cliente);
				$cliente->setSenha($senha_cliente);
				$cliente->setNome($nome);
				$cliente->setTelefone($telefone);
				$cliente->setCelular($celular);
				$cliente->setDataNascimento($data_nascimento);
				$cliente->setEndereco($endereco);
				$cliente->setNumero($numero);
				$cliente->setBairro($bairro);
				$cliente->setCEP($cep);
				$cliente->setCidade($cidade);
				$cliente->setDataCadastro($datetime);

				$validacao = $cliente->gravar();			

				if(!$validacao[0]){
					$formMessage = array(1, $validacao[1]);
				}else{
					$formMessage = array(3, 'Cadastrado efetuado com sucesso. Por favor, acesse seu e-mail para confirmar o cadastro.');

					foreach ($formdata as $chave){
						$formdata[$chave] = '';
					}
				}
			}
			
			//
			// Adiciona Scripts não padrão no carregamento da página
			//		
			// plugin validação + extras para validar CPF/CNPJ e mensagens padrão
			$this->addScript(base_url('assets/js/jquery.validate.min.js'));
			$this->addScript(base_url('assets/js/shared/validation.js'));
			// plugin p/ colocar máscara nos campos
			$this->addScript(base_url('assets/js/jquery.maskedinput.min.js'));
			// script p/ a página
			$this->addScript(base_url('assets/js/paravoce/cadastro.js'));

			// Dados que serão enviados para a view
			$this->setViewData('main_content', 'paravoce/cadastro');
			$this->setViewData('estados', $this->estado_model->getAll());
			$this->setViewData('cidades', $this->cidade_model->getAll());
			$this->setViewData('formMessage', $formMessage);
			$this->setViewData('formdata', $formdata);

			// Carrega a view
			$this->load->view('_shared/template', $this->viewData);			
		}else{
			redirect('paravoce/acessar');
		}
	}

	public function detalhespedido($codPedido)
	{
		if ($this->isPessoaLoggedIn() && !empty($codPedido)){
			$this->load->model('negocio/paravoce_model', 'paravoce_model');
			$detalhes = array();
			$v = $this->paravoce_model->getDetalhesPedido($codPedido);
			foreach ($v as $row) {
				$detalhes[] = array(
					'cod_item_auto' => $row->cod_item_auto,
					'pedido_numero' => $row->pedido_numero,
					'item' => $row->item,
					'tamanho' => $row->tamanho,
					'item_preco' => $row->item_preco,
					'qtd' => $row->qtd,
					'item_subtotal' => $row->item_subtotal,
					'disponivel' => $row->disponivel
					);
			}

			echo json_encode($detalhes);
		}else{
			redirect('paravoc/acessar');
		}
	}
}